#include "fpioa.h"

/**
 * @brief      Internal used FPIOA function initialize cell
 *
 *             This is NOT fpioa_io_config_t, can't assign directly
 *
 */
typedef struct
{
    uint32_t ch_sel: 8;
    /* Channel select from 256 input. */
    uint32_t ds: 4;
    /* Driving selector. */
    uint32_t oe_en: 1;
    /* Static output enable, will AND with OE_INV. */
    uint32_t oe_inv: 1;
    /* Invert output enable. */
    uint32_t do_sel: 1;
    /* Data output select: 0 for DO, 1 for OE. */
    uint32_t do_inv: 1;
    /* Invert the result of data output select (DO_SEL). */
    uint32_t pu: 1;
    /* Pull up enable. 0 for nothing, 1 for pull up. */
    uint32_t pd: 1;
    /* Pull down enable. 0 for nothing, 1 for pull down. */
    uint32_t resv0: 1;
    /* Reserved bits. */
    uint32_t sl: 1;
    /* Slew rate control enable. */
    uint32_t ie_en: 1;
    /* Static input enable, will AND with IE_INV. */
    uint32_t ie_inv: 1;
    /* Invert input enable. */
    uint32_t di_inv: 1;
    /* Invert Data input. */
    uint32_t st: 1;
    /* Schmitt trigger. */
    uint32_t tie_en: 1;
    /* Input tie enable, 1 for enable, 0 for disable. */
    uint32_t tie_val: 1;
    /* Input tie value, 1 for high, 0 for low. */
    uint32_t resv1: 5;
    /* Reserved bits. */
    uint32_t pad_di: 1;
    /* Read current PAD's data input. */
} __attribute__((packed, aligned(4))) fpioa_assign_t;

/* Function list */
static const fpioa_assign_t function_config[FUNC_MAX] =
        {
                {
                        .ch_sel  = FUNC_JTAG_TCLK,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_JTAG_TDI,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_JTAG_TMS,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_JTAG_TDO,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_D0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_D1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_D2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_D3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_D4,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_D5,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_D6,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_D7,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_SS0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_SS1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_SS2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_SS3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_ARB,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 1,
                        .tie_val = 1,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI0_SCLK,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UARTHS_RX,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UARTHS_TX,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_RESV6,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_RESV7,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CLK_SPI1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CLK_I2C1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS4,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS5,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS6,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS7,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS8,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS9,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS10,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS11,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS12,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS13,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS14,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS15,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS16,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS17,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS18,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS19,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS20,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS21,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS22,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS23,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS24,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS25,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS26,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS27,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS28,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS29,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS30,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIOHS31,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIO0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIO1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIO2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIO3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIO4,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIO5,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIO6,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_GPIO7,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_RX,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_TX,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_RX,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_TX,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_RX,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_TX,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_D0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_D1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_D2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_D3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_D4,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_D5,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_D6,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_D7,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_SS0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_SS1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_SS2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_SS3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_ARB,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 1,
                        .tie_val = 1,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI1_SCLK,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI_SLAVE_D0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 1,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI_SLAVE_SS,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SPI_SLAVE_SCLK,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_MCLK,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_SCLK,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_WS,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_IN_D0,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_IN_D1,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_IN_D2,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_IN_D3,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_OUT_D0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_OUT_D1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_OUT_D2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S0_OUT_D3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_MCLK,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_SCLK,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_WS,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_IN_D0,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_IN_D1,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_IN_D2,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_IN_D3,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_OUT_D0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_OUT_D1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_OUT_D2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S1_OUT_D3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_MCLK,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_SCLK,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_WS,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_IN_D0,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_IN_D1,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_IN_D2,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_IN_D3,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_OUT_D0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_OUT_D1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_OUT_D2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2S2_OUT_D3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_RESV0,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_RESV1,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_RESV2,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_RESV3,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_RESV4,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_RESV5,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2C0_SCLK,
                        .ds      = 0x0,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 1,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 1,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2C0_SDA,
                        .ds      = 0x0,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 1,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 1,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2C1_SCLK,
                        .ds      = 0x0,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 1,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 1,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2C1_SDA,
                        .ds      = 0x0,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 1,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 1,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2C2_SCLK,
                        .ds      = 0x0,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 1,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 1,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_I2C2_SDA,
                        .ds      = 0x0,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 1,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 1,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_XCLK,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_RST,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_PWDN,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_VSYNC,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_HREF,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_PCLK,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_D0,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_D1,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_D2,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_D3,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_D4,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_D5,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_D6,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CMOS_D7,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SCCB_SCLK,
                        .ds      = 0x0,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 1,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 1,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_SCCB_SDA,
                        .ds      = 0x0,
                        .oe_en   = 1,
                        .oe_inv  = 1,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 1,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 1,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_CTS,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_DSR,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_DCD,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_RI,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_SIR_IN,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_DTR,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_RTS,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_OUT2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_OUT1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_SIR_OUT,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_BAUD,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_RE,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_DE,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART1_RS485_EN,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_CTS,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_DSR,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_DCD,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_RI,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_SIR_IN,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_DTR,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_RTS,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_OUT2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_OUT1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_SIR_OUT,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_BAUD,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_RE,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_DE,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART2_RS485_EN,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_CTS,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_DSR,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_DCD,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_RI,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_SIR_IN,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_DTR,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_RTS,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_OUT2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_OUT1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_SIR_OUT,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_BAUD,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_RE,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_DE,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_UART3_RS485_EN,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER0_TOGGLE1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER0_TOGGLE2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER0_TOGGLE3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER0_TOGGLE4,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER1_TOGGLE1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER1_TOGGLE2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER1_TOGGLE3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER1_TOGGLE4,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER2_TOGGLE1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER2_TOGGLE2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER2_TOGGLE3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_TIMER2_TOGGLE4,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CLK_SPI2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CLK_I2C2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL4,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL5,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL6,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL7,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL8,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL9,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL10,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL11,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL12,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL13,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 1,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL14,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 1,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 1,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL15,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL16,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL17,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_CONSTANT,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_INTERNAL18,
                        .ds      = 0x0,
                        .oe_en   = 0,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 1,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 1,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG0,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG1,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG2,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG3,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG4,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG5,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG6,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG7,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG8,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG9,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG10,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG11,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG12,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG13,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG14,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG15,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG16,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG17,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG18,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG19,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG20,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG21,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG22,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG23,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG24,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG25,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG26,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG27,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG28,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG29,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG30,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
                {
                        .ch_sel  = FUNC_DEBUG31,
                        .ds      = 0xf,
                        .oe_en   = 1,
                        .oe_inv  = 0,
                        .do_sel  = 0,
                        .do_inv  = 0,
                        .pu      = 0,
                        .pd      = 0,
                        .resv1   = 0,
                        .sl      = 0,
                        .ie_en   = 0,
                        .ie_inv  = 0,
                        .di_inv  = 0,
                        .st      = 0,
                        .tie_en  = 0,
                        .tie_val = 0,
                        .resv0   = 0,
                        .pad_di  = 0
                },
        };

volatile fpioa_t *const fpioa = (volatile fpioa_t *)FPIOA_BASE_ADDR;

static void fpioa_set_function_raw(int pin, fpioa_function_t function);

int fpioa_set_function(int pin, fpioa_function_t function)
{
    /**
     * FUNC_RESV0 is the fallback, so steps are:
     * 1. sanity check
     * 2. if 'function' is FUNC_RESV0, we can directly set without check collision
     *  (fallback can be occupied simultaneously by multiple pins) and return
     * 3. while most 'function' is not FUNC_RESV0, we must first check collision and
     *  map previous owner(if there is one and not our pin) to FUNC_RESV0
     * 4. after collision check, we are free to set it
   */
    if (pin >= FPIOA_NUM_IO|| pin <0 || function >= FUNC_MAX || function <0)
        return -1;

    if (function == FUNC_RESV0)
        goto done;

    volatile fpioa_io_config_t *config;
    for (int i = 0; i < FPIOA_NUM_IO; ++i) {
        /*
         * Here we have to first declare(cast) config as a
         * volatile pointer and use it to access its ch_sel,
         * as only in this way the compiler will generate right
         * instructions(access the whole word rather than partial byte).
         */
        config = &fpioa->io[i];
        if ((config->ch_sel == function) && (i != pin)) {
            fpioa_set_function_raw(i, FUNC_RESV0);
            break;
        }
    }

done:
    fpioa_set_function_raw(pin,function);
    return 0;
}

/**
 * perform the real set operation
 */
static void fpioa_set_function_raw(int pin, fpioa_function_t function)
{
    fpioa->io[pin] = (const fpioa_io_config_t)
        {
            .ch_sel = function_config[function].ch_sel,
            .ds = function_config[function].ds,
            .oe_en = function_config[function].oe_en,
            .oe_inv = function_config[function].oe_inv,
            .do_sel = function_config[function].do_sel,
            .do_inv = function_config[function].do_inv,
            .pu = function_config[function].pu,
            .pd = function_config[function].pd,
            .sl = function_config[function].sl,
            .ie_en = function_config[function].ie_en,
            .ie_inv = function_config[function].ie_inv,
            .di_inv = function_config[function].di_inv,
            .st= function_config[function].st,
            /* resv and pad_di do not need initialization */
        };
}

int fpioa_set_io_pull(int pin, fpioa_pull_t pull)
{
    /* Sanity check */
    if (pin < 0 || pin >= FPIOA_NUM_IO || pull >= FPIOA_PULL_MAX)
        return -1;

    fpioa_io_config_t config = fpioa->io[pin];

    switch (pull)
    {
        case FPIOA_PULL_NONE:
            config.pu = 0;
            config.pd = 0;
            break;
        case FPIOA_PULL_DOWN:
            config.pu = 0;
            config.pd = 1;
            break;
        case FPIOA_PULL_UP:
            config.pu = 1;
            config.pd = 0;
            break;
        default:
            break;
    }

    fpioa->io[pin] = config;
    return 0;
}

int fpioa_get_owner_pin_by_function(fpioa_function_t function)
{
    volatile fpioa_io_config_t *config;
    for (int pin = 0; pin < FPIOA_NUM_IO; pin++){
        /*
         * Here we have to first declare(cast) config as a
         * volatile pointer and use it to access its ch_sel,
         * as only in this way the compiler will generate right
         * instructions(access the whole word rather than partial byte).
         */
        config = &fpioa->io[pin];
        if (config->ch_sel == function)
            return pin;
    }

    return -1;
}